home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / AvantBrowser / asetup.exe / _data / webkit / chrome_100_percent.pak / Unnamed File 000046.txt < prev    next >
Text File  |  2013-04-03  |  2KB  |  39 lines

  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4.  
  5. // Custom bindings for the tabs API.
  6.  
  7. var tabsNatives = requireNative('tabs');
  8. var OpenChannelToTab = tabsNatives.OpenChannelToTab;
  9. var sendRequestIsDisabled = requireNative('process').IsSendRequestDisabled();
  10.  
  11. var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
  12.  
  13. chromeHidden.registerCustomHook('tabs', function(bindingsAPI, extensionId) {
  14.   var apiFunctions = bindingsAPI.apiFunctions;
  15.  
  16.   apiFunctions.setHandleRequest('connect', function(tabId, connectInfo) {
  17.     var name = '';
  18.     if (connectInfo) {
  19.       name = connectInfo.name || name;
  20.     }
  21.     var portId = OpenChannelToTab(tabId, extensionId, name);
  22.     return chromeHidden.Port.createPort(portId, name);
  23.   });
  24.  
  25.   apiFunctions.setHandleRequest('sendRequest',
  26.                                 function(tabId, request, responseCallback) {
  27.     if (sendRequestIsDisabled)
  28.       throw new Error(sendRequestIsDisabled);
  29.     var port = chrome.tabs.connect(tabId, {name: chromeHidden.kRequestChannel});
  30.     chromeHidden.Port.sendMessageImpl(port, request, responseCallback);
  31.   });
  32.  
  33.   apiFunctions.setHandleRequest('sendMessage',
  34.                                 function(tabId, message, responseCallback) {
  35.     var port = chrome.tabs.connect(tabId, {name: chromeHidden.kMessageChannel});
  36.     chromeHidden.Port.sendMessageImpl(port, message, responseCallback);
  37.   });
  38. });
  39.